<?xml version='1.0' encoding='utf-8'?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Pro Git - 简体中文版
</title>
    <meta content="http://www.w3.org/1999/xhtml; charset=utf-8" http-equiv="Content-Type"/>
    <link href="stylesheet.css" type="text/css" rel="stylesheet"/>
    <style type="text/css">
		@page { margin-bottom: 5.000000pt; margin-top: 5.000000pt; }</style>
  </head>
  <body class="calibre">
<h2 id="calibre_toc_34" class="calibre3">生成 SSH 公钥</h2>

<p class="calibre2">话虽如此，大多数 Git 服务器使用 SSH 公钥来授权。为了得到授权，系统中的每个没有公钥用户都得生成一个新的。该过程在所有操作系统上都差不多。
首先，确定一下是否已经有一个公钥了。SSH 公钥默认储存在账户的 <code class="calibre9">~/.ssh</code> 目录。进入那里并查看其内容，有没有公钥一目了然：</p>

<pre class="calibre8"><code class="calibre9">$ cd ~/.ssh
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub
</code></pre>

<p class="calibre2">关键是看有没有用 文件名 和 文件名.pub 来命名的一对文件，这个 文件名 通常是 <code class="calibre9">id_dsa</code> 或者 <code class="calibre9">id_rsa</code>。 <code class="calibre9">.pub</code> 文件是公钥，另一个文件是密钥。假如没有这些文件（或者干脆连 <code class="calibre9">.ssh</code> 目录都没有），你可以用 <code class="calibre9">ssh-keygen</code> 的程序来建立它们，该程序在 Linux/Mac 系统由 SSH 包提供， 在 Windows 上则包含在 MSysGit 包里：</p>

<pre class="calibre8"><code class="calibre9">$ ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/schacon/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/schacon/.ssh/id_rsa.
Your public key has been saved in /Users/schacon/.ssh/id_rsa.pub.
The key fingerprint is:
43:c5:5b:5f:b1:f1:50:43:ad:20:a6:92:6a:1f:9a:3a schacon@agadorlaptop.local
</code></pre>

<p class="calibre2">它先要求你确认保存公钥的位置（<code class="calibre9">.ssh/id_rsa</code>），然后它会让你重复一个密码两次，如果不想在使用公钥的时候输入密码，可以留空。</p>

<p class="calibre2">现在，所有做过这一步的用户都得把它们的公钥给你或者 Git 服务器的管理者（假设 SSH 服务被设定为使用公钥机制）。他们只需要复制 <code class="calibre9">.put</code> 文件的内容然后 e-email 之。公钥的样子大致如下：</p>

<pre class="calibre8"><code class="calibre9">$ cat ~/.ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@agadorlaptop.local
</code></pre>

<p class="calibre2">关于在多个操作系统上设立相同 SSH 公钥的教程，可以在 GitHub 有关 SSH 公钥的向导中找到：<code class="calibre9">http://github.com/guides/providing-your-ssh-key</code>。</p>

</body>
</html>
